﻿$(function(){
	// 初始化table
	$('#menu_table').bootstrapTable({
        url: path + '/sys/menu/listData', //请求后台的URL（*）
        method: 'post',                     //请求方式（*）
        toolbar: '#toolbar',                //工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true,                   //是否显示分页（*）
        sortable: false,                    //是否启用排序
        sortOrder: "asc",                   //排序方式
        queryParams: function (params) {
            return {
            	pageSize: this.pageSize,
            	pageId: this.pageNumber,
            	menuName:encodeURI($("#menuName").val())
            };
        },           						//传递参数（*）
        sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
        pageNumber:1,                       //初始化加载第一页，默认第一页
        pageSize: 50,                       //每页的记录行数（*）
        pageList: [10, 25, 50, 100, 'All'], //可供选择的每页的行数（*）
        smartDisplay: false,                //智能显示分页按钮
        paginationPreText: "上一页",
        paginationNextText: "下一页",
        showRefresh: true, 					//是否显示刷新按钮
        showColumns: true,                  //显示选择列
        clickToSelect: true, 				//是否启用点击选中行
        minimumCountColumns: 2,             //最少允许的列数
        height: 460,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
        uniqueId: "id",                     //每一行的唯一标识，一般为主键列
        cardView: false,                    //是否显示详细视图
        detailView: false,                  //是否显示父子表
        responseHandler: function (res) {   //在ajax请求成功后，发放数据之前可以对返回的数据进行处理
            return res;
        },
        columns: [{
            field: 'id',
            visible:false,
            title: '主键'
        }, {field: 'number', 
        	title: '序号',
        	align: 'center',
            formatter: function (value, row, index) {
                return index+1;
        }},{
            field: 'menuName',
            title: '菜单名称',
            align: 'center'
        }, {
            field: 'menuGrade',
            title: '菜单级别',
            align: 'center',
            formatter:function(value,row,index){
            	return getDictLabel('menu_grade', row.menuGrade);
            }
        }, {
            field: 'createDate',
            title: '创建时间',
            align: 'center'
        }, {
        	field: 'operation',
            title: '操作',
            align: 'center',
            formatter: function(value,row,index){
            	var handle = '<a class="color_blue" href="javascript:" onclick="childrenMenu(\''+ row.id + '\',\'' + row.menuName + '\');"><i title="下级菜单" class="fa fa-share-square-o"></i></a>';
            	if ($("#handlePermission").val() == "1") {
            		handle += '<a class="color_blue ml10" href="javascript:" onclick="updateMenu(\''+ row.id + '\');"><i title="编辑" class="fa fa-edit"></i></a>';
            		handle += '<a class="color_blue ml10" href="javascript:" onclick="deleteMenu(\''+ row.id + '\');"><i title="删除" class="fa fa-trash-o"></i></a>';
            	}
            	return handle;
            }
        }]
    });
	
	// 子菜单列表
	$('#children_menu_table').bootstrapTable({
        url: path + '/sys/menu/listChildrenData', //请求后台的URL（*）
        method: 'post',                     //请求方式（*）
        toolbar: '#toolbar',                //工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true,                   //是否显示分页（*）
        sortable: false,                    //是否启用排序
        sortOrder: "asc",                   //排序方式
        queryParams: function (params) {
            return {
            	pageSize: this.pageSize,
            	pageId: this.pageNumber,
            	'parentMenuId':$("#prarentId").val()
            };
        },           						//传递参数（*）
        sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
        pageNumber:1,                       //初始化加载第一页，默认第一页
        pageSize: 50,                       //每页的记录行数（*）
        pageList: [10, 25, 50, 100, 'All'], //可供选择的每页的行数（*）
        smartDisplay: false,                //智能显示分页按钮
        paginationPreText: "上一页",
        paginationNextText: "下一页",
        showRefresh: true, 					//是否显示刷新按钮
        showColumns: true,                  //显示选择列
        clickToSelect: true, 				//是否启用点击选中行
        minimumCountColumns: 2,             //最少允许的列数
        height: 460,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
        uniqueId: "id",                     //每一行的唯一标识，一般为主键列
        cardView: false,                    //是否显示详细视图
        detailView: false,                  //是否显示父子表
        responseHandler: function (res) {   //在ajax请求成功后，发放数据之前可以对返回的数据进行处理
            return res;
        },
        columns: [{
            field: 'id',
            visible:false,
            title: '主键'
        }, {field: 'number', 
        	title: '序号',
        	align: 'center',
            formatter: function (value, row, index) {
                return index+1;
        }},{
            field: 'menuName',
            title: '菜单名称',
            align: 'center'
        },{
            field: 'menuUrl',
            title: '菜单链接',
            align: 'center'
        }, {
            field: 'menuGrade',
            title: '菜单级别',
            align: 'center',
            formatter:function(value,row,index){
            	return getDictLabel('menu_grade', row.menuGrade);
            }
        }, {
            field: 'createDate',
            title: '创建时间',
            align: 'center'
        }, {
        	field: 'operation',
            title: '操作',
            align: 'center',
            formatter: function(value,row,index){
            	var handle = "";
            	if ($("#menuBtnPermission").val() == "1") {
            		handle += '<a class="color_blue" href="javascript:" onclick="permissionsList(\''+ row.id + '\',\'' + row.menuName + '\');"><i title="按钮权限" class="fa fa-share-square-o"></i></a>';
            	}
            	if ($("#handlePermission").val() == "1") {
            		handle += '<a class="color_blue ml10" href="javascript:" onclick="updateMenu(\''+ row.id + '\');"><i title="编辑" class="fa fa-edit"></i></a>';
            		handle += '<a class="color_blue ml10" href="javascript:" onclick="deleteMenu(\''+ row.id + '\');"><i title="删除" class="fa fa-trash-o"></i></a>';
            	}
            	return handle;
            }
        }]
    });
	
	// 筛选数据
	$('#searchData').click(function () {  
		searchData();
	});  
});

function searchData() {
	if ($('#menu_table').length > 0) {
		$('#menu_table').bootstrapTable('refresh');
	}
	if ($('#children_menu_table').length > 0) {
		$('#children_menu_table').bootstrapTable('refresh'); 
	}
}

//添加菜单按钮页面
function permissionsList(id, name) {
	
	layer.open({
      type: 2,
      title: '菜单【' + name + '】按钮列表',
      shade: 0.5,
      maxmin: true, //开启最大化最小化按钮
      area: ['650px', '400px'],
      skin: 'layui-layer-rim', //加上边框
      content: path + '/sys/menuBtn/list?menuId=' + id,
      end: function() {
    	  searchData(); 
      }
    });
}

// 添加菜单页面
function add() {
	
	layer.open({
      type: 2,
      title: '添加菜单',
      shade: 0.5,
      maxmin: true, //开启最大化最小化按钮
      area: ['600px', '380px'],
      skin: 'layui-layer-rim', //加上边框
      content: 'add',
      end: function() {
    	  searchData();
      }
    });
}

// 更新菜单
function updateMenu(id) {
	layer.open({
	      type: 2,
	      title: '更新菜单',
	      shade: 0.5,
	      maxmin: true, //开启最大化最小化按钮
	      area: ['600px', '380px'],
	      skin: 'layui-layer-rim', //加上边框
	      content: 'update?id=' + id,
	      end: function() {
	    	  searchData();
	      }
    });
}

// 子菜单列表
function childrenMenu(id, name) {
	layer.open({
	      type: 2,
	      title: '【' + name + '】二级菜单',
	      shade: 0.5,
	      maxmin: true, //开启最大化最小化按钮
	      area: ['750px', '500px'],
	      skin: 'layui-layer-rim', //加上边框
	      content: 'childrenMenu?parentMenu.id=' + id,
	      end: function() {
	    	  // searchData();
	      }
    });
}

// 删除菜单
function deleteMenu(id) {
	// 确认消息
	layer.confirm("您确认要删除本菜单吗？", function() {
		$.ajax({
			type:'post',
			async : false,
	        cache : false,
			url:'deleteMenu',
			data:{'id':id},
			dataType:'json',
			success:function(data) {
				if (data.success) {// 成功
					layer.msg("菜单删除成功", {icon:6}, function() {
						searchData();
					});
				} else {
					layer.msg(data.msg, {icon:5});
				}
			}
		});
	});
}

